#include <stdlib.h>
#include <errno.h>
#include <limits.h>
+#include <graphene.h>
#include "gtkprivate.h"
#include "gtkwindowprivate.h"
GdkWindow *hardcoded_window;
GtkCssNode *decoration_node;
+
+ GskRenderer *renderer;
};
static const GtkTargetEntry dnd_dest_targets [] = {
_gtk_widget_get_allocation (widget, &allocation);
+ if (priv->renderer == NULL)
+ {
+ graphene_rect_t viewport;
+
+ priv->renderer = gsk_renderer_get_for_display (gtk_widget_get_display (widget));
+
+ graphene_rect_init (&viewport, 0, 0, allocation.width, allocation.height);
+ gsk_renderer_set_viewport (priv->renderer, &viewport);
+ }
+
if (gtk_widget_get_parent_window (widget))
{
gdk_window = gdk_window_new_child (gtk_widget_get_parent_window (widget),
popover_realize (popover->widget, popover, window);
}
+ gsk_renderer_set_window (priv->renderer, gdk_window);
+ gsk_renderer_realize (priv->renderer);
+
return;
}
}
check_scale_changed (window);
+
+ /* Renderer */
+ gsk_renderer_set_window (priv->renderer, gdk_window);
+ gsk_renderer_set_use_alpha (priv->renderer, TRUE);
+ gsk_renderer_realize (priv->renderer);
}
static void
GList *link;
gint i;
+ if (priv->renderer != NULL)
+ gsk_renderer_unrealize (priv->renderer);
+
/* On unrealize, we reset the size of the window such
* that we will re-apply the default sizing stuff
* next time we show the window.
child_allocation.width = allocation->width;
child_allocation.height = allocation->height;
+ if (priv->renderer != NULL)
+ {
+ graphene_rect_t viewport;
+ graphene_matrix_t projection;
+
+ graphene_rect_init (&viewport, 0, 0, allocation->width, allocation->height);
+ gsk_renderer_set_viewport (priv->renderer, &viewport);
+
+ graphene_matrix_init_ortho (&projection,
+ 0, allocation->width,
+ 0, allocation->height,
+ -1, 1);
+ gsk_renderer_set_projection (priv->renderer, &projection);
+ }
+
get_shadow_width (window, &window_border);
if (_gtk_widget_get_realized (widget))
}
#endif
}
+
+GskRenderer *
+gtk_window_get_renderer (GtkWindow *window)
+{
+ GtkWindowPrivate *priv = window->priv;
+
+ return priv->renderer;
+}